package com.spsoft.vatoutinv.model.vo.vmsavalibletaxrate;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 可用税率信息查询记录列表Vo
 *
 * @author : chenxudong
 * @date : 2023/11/23 14:18
 */
@Data
@ContentRowHeight(12)
@HeadRowHeight(22)
@ColumnWidth(25)
@ApiModel(value = "可用税率信息查询记录列表返回数据")
public class VmsAvalibleTaxRateVo {

    @ApiModelProperty(value = "id", notes = "id")
    @ExcelIgnore
    private Long id;

    @ApiModelProperty(value = "序号", notes = "Excel导出使用")
    @ExcelProperty("序号")
    private int xh;

    @ApiModelProperty(value = "参数性质;1：税率，2：征收率", notes = "参数性质;1：税率，2：征收率")
    @ExcelProperty("性质")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_KYSLCSXZ)
    private String csxz;

    @ApiModelProperty(value = "税率征收率", notes = "税率征收率")
    @ExcelProperty("税率/征收率")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal slzsl;

    @ApiModelProperty(value = "原税率标志;Y：有原税率  N：无原税率", notes = "原税率标志;Y：有原税率  N：无原税率")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_YSLBZ)
    @ExcelProperty("原税率标志")
    private String yslbz;

    @ApiModelProperty(value = "对应原税率，百分比形式、逗号连接", notes = "对应原税率，百分比形式、逗号连接")
    @ExcelProperty("对应原税率")
    private String dyysl;

    @ApiModelProperty(value = "参数状态;0：启用 1：停用", notes = "参数状态;0：启用 1：停用")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_KYSLCSZT)
    @ExcelProperty("状态")
    private String cszt;

    @ApiModelProperty(value = "有效期起;时间格式：YYYY-MM-DD", notes = "有效期起;时间格式：YYYY-MM-DD")
    @ExcelProperty("有效期起")
    @DateTimeFormat("yyyy-MM-dd")
    @Translate(type = TranslateConstant.DATE)
    private Date yxqq;

    @ApiModelProperty(value = "有效期止;时间格式：YYYY-MM-DD", notes = "有效期止;时间格式：YYYY-MM-DD")
    @ExcelProperty("有效期止")
    @DateTimeFormat("yyyy-MM-dd")
    @Translate(type = TranslateConstant.DATE)
    private Date yxqz;

    @ApiModelProperty(value = "停用日期", notes = "停用日期")
    @ExcelProperty("停用日期")
    @DateTimeFormat("yyyy-MM-dd")
    @Translate(type = TranslateConstant.DATE)
    private Date tyrq;

}
